package org.example.Mapper;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.example.domain.NitChat;

@Mapper
public interface NitChatMapper {

    @Insert("INSERT INTO nit_chat (msg,userId,adminId,nitRecordId,date,status,sendId) VALUES " +
            "(#{msg},#{userId},#{adminId},#{nitRecordId},#{date},#{status},#{sendId});")
    void insertOneNitChat(NitChat nitChat);

    /**
     * 获取指定学生的所有最新的聊天记录
     * @param userId 学生id
     * @return 最新聊天记录数组
     */
    @Select("SELECT * FROM nit_chat WHERE id IN (SELECT MAX(id) FROM nit_chat " +
            "WHERE userId=#{userId} GROUP BY nitRecordId);")
    NitChat[] selectLastNitChatsByUserId(Integer userId);

    /**
     * 获取指定学生的所有最新的聊天记录
     * @param adminId 学生id
     * @return 最新聊天记录数组
     */
    @Select("SELECT * FROM nit_chat WHERE id IN (SELECT MAX(id) FROM nit_chat " +
            "WHERE adminId=#{adminId} GROUP BY nitRecordId);")
    NitChat[] selectLastNitChatsByAdminId(Integer adminId);

    /**
     * 获取指定反馈记录的所有会话记录
     * @param nitRecordId 指定的反馈记录id
     * @return 返回聊天记录
     */
    @Select("SELECT * FROM nit_chat WHERE nitRecordId=#{nitRecordId};")
    NitChat[] selectNitChatsByNitRecordId(Integer nitRecordId);

}
